GPU_data = {
    "2.0" : {
        "SM_Version": "sm_20",
        "Thread / Warp" : 32,
        "Warps / SM" : 48,
        "Threads / SM" : 1536,
        "Thread Blocks / SM" : 8, 
        "Shared Memory / SM (bytes)" : 49152,
        "Max Shared Memory / Block (bytes)" : 49152,
        "Register File Size / SM (32-bit registers)": 32768,
        "Max Registers / Block" : 32768,
        "Register Allocation Unit Size" : 64,
        "Register Allocation Granularity" : "warp",
        "Max Registers / Thread" : 63,
        "Shared Memory Allocation Unit Size": 128,
        "Warp Allocation Granularity": 2,
        "Max Thread Block Size": 1024
    },
    "2.1" : {
        "SM_Version": "sm_21",
        "Thread / Warp" : 32,
        "Warps / SM" : 48,
        "Threads / SM" : 1536,
        "Thread Blocks / SM" : 8, 
        "Shared Memory / SM (bytes)" : 49152,
        "Max Shared Memory / Block (bytes)" : 49152,
        "Register File Size / SM (32-bit registers)": 32768,
        "Max Registers / Block" : 32768,
        "Register Allocation Unit Size" : 64,
        "Register Allocation Granularity" : "warp",
        "Max Registers / Thread" : 63,
        "Shared Memory Allocation Unit Size": 128,
        "Warp Allocation Granularity": 2,
        "Max Thread Block Size": 1024
    }, 
    "3.0" : {
        "SM_Version": "sm_30",
        "Thread / Warp" : 32,
        "Warps / SM" : 64,
        "Threads / SM" : 2048,
        "Thread Blocks / SM" : 16, 
        "Shared Memory / SM (bytes)" : 49152,
        "Max Shared Memory / Block (bytes)" : 49152,
        "Register File Size / SM (32-bit registers)": 65536,
        "Max Registers / Block" : 65536,
        "Register Allocation Unit Size" : 256,
        "Register Allocation Granularity" : "warp",
        "Max Registers / Thread" : 63,
        "Shared Memory Allocation Unit Size": 256,
        "Warp Allocation Granularity": 4,
        "Max Thread Block Size": 1024
    },
    "3.2" : {
        "SM_Version": "sm_32",
        "Thread / Warp" : 32,
        "Warps / SM" : 64,
        "Threads / SM" : 2048,
        "Thread Blocks / SM" : 16, 
        "Shared Memory / SM (bytes)" : 49152,
        "Max Shared Memory / Block (bytes)" : 49152,
        "Register File Size / SM (32-bit registers)": 65536,
        "Max Registers / Block" : 65536,
        "Register Allocation Unit Size" : 256,
        "Register Allocation Granularity" : "warp",
        "Max Registers / Thread" : 255,
        "Shared Memory Allocation Unit Size": 256,
        "Warp Allocation Granularity": 4,
        "Max Thread Block Size": 1024
    },
    "3.5" : {
        "SM_Version": "sm_35",
        "Thread / Warp" : 32,
        "Warps / SM" : 64,
        "Threads / SM" : 2048,
        "Thread Blocks / SM" : 16, 
        "Shared Memory / SM (bytes)" : 49152,
        "Max Shared Memory / Block (bytes)" : 49152,
        "Register File Size / SM (32-bit registers)": 65536,
        "Max Registers / Block" : 65536,
        "Register Allocation Unit Size" : 256,
        "Register Allocation Granularity" : "warp",
        "Max Registers / Thread" : 255,
        "Shared Memory Allocation Unit Size": 256,
        "Warp Allocation Granularity": 4,
        "Max Thread Block Size": 1024
    },
    "3.7" : {
        "SM_Version": "sm_37",
        "Thread / Warp" : 32,
        "Warps / SM" : 64,
        "Threads / SM" : 2048,
        "Thread Blocks / SM" : 16, 
        "Shared Memory / SM (bytes)" : 114688,
        "Max Shared Memory / Block (bytes)" : 49152,
        "Register File Size / SM (32-bit registers)": 131072,
        "Max Registers / Block" : 65536,
        "Register Allocation Unit Size" : 256,
        "Register Allocation Granularity" : "warp",
        "Max Registers / Thread" : 255,
        "Shared Memory Allocation Unit Size": 256,
        "Warp Allocation Granularity": 4,
        "Max Thread Block Size": 1024
    },
    "5.0" : {
        "SM_Version": "sm_50",
        "Thread / Warp" : 32,
        "Warps / SM" : 64,
        "Threads / SM" : 2048,
        "Thread Blocks / SM" : 32, 
        "Shared Memory / SM (bytes)" : 65536,
        "Max Shared Memory / Block (bytes)" : 49152,
        "Register File Size / SM (32-bit registers)": 65536,
        "Max Registers / Block" : 65536,
        "Register Allocation Unit Size" : 256,
        "Register Allocation Granularity" : "warp",
        "Max Registers / Thread" : 255,
        "Shared Memory Allocation Unit Size": 256,
        "Warp Allocation Granularity": 4,
        "Max Thread Block Size": 1024
    },

    "5.2" : {
        "SM_Version": "sm_52",
        "Thread / Warp" : 32,
        "Warps / SM" : 64,
        "Threads / SM" : 2048,
        "Thread Blocks / SM" : 32, 
        "Shared Memory / SM (bytes)" : 98304,
        "Max Shared Memory / Block (bytes)" : 49152,
        "Register File Size / SM (32-bit registers)": 65536,
        "Max Registers / Block" : 65536,
        "Register Allocation Unit Size" : 256,
        "Register Allocation Granularity" : "warp",
        "Max Registers / Thread" : 255,
        "Shared Memory Allocation Unit Size": 256,
        "Warp Allocation Granularity": 4,
        "Max Thread Block Size": 1024
    },

    "5.3" : {
        "SM_Version": "sm_53",
        "Thread / Warp" : 32,
        "Warps / SM" : 64,
        "Threads / SM" : 2048,
        "Thread Blocks / SM" : 32, 
        "Shared Memory / SM (bytes)" : 65536,
        "Max Shared Memory / Block (bytes)" : 49152,
        "Register File Size / SM (32-bit registers)": 65536,
        "Max Registers / Block" : 32768,
        "Register Allocation Unit Size" : 256,
        "Register Allocation Granularity" : "warp",
        "Max Registers / Thread" : 255,
        "Shared Memory Allocation Unit Size": 256,
        "Warp Allocation Granularity": 4,
        "Max Thread Block Size": 1024
    },

    "6.0" : {
        "SM_Version": "sm_60",
        "Thread / Warp" : 32,
        "Warps / SM" : 64,
        "Threads / SM" : 2048,
        "Thread Blocks / SM" : 32, 
        "Shared Memory / SM (bytes)" : 65536,
        "Max Shared Memory / Block (bytes)" : 49152,
        "Register File Size / SM (32-bit registers)": 65536,
        "Max Registers / Block" : 65536,
        "Register Allocation Unit Size" : 256,
        "Register Allocation Granularity" : "warp",
        "Max Registers / Thread" : 255,
        "Shared Memory Allocation Unit Size": 256,
        "Warp Allocation Granularity": 2,
        "Max Thread Block Size": 1024
    },

    "6.1" : {
        "SM_Version": "sm_61",
        "Thread / Warp" : 32,
        "Warps / SM" : 64,
        "Threads / SM" : 2048,
        "Thread Blocks / SM" : 32, 
        "Shared Memory / SM (bytes)" : 98304,
        "Max Shared Memory / Block (bytes)" : 49152,
        "Register File Size / SM (32-bit registers)": 65536,
        "Max Registers / Block" : 65536,
        "Register Allocation Unit Size" : 256,
        "Register Allocation Granularity" : "warp",
        "Max Registers / Thread" : 255,
        "Shared Memory Allocation Unit Size": 256,
        "Warp Allocation Granularity": 4,
        "Max Thread Block Size": 1024
    },

    "6.2" : {
        "SM_Version": "sm_62",
        "Thread / Warp" : 32,
        "Warps / SM" : 64,
        "Threads / SM" : 2048,
        "Thread Blocks / SM" : 32, 
        "Shared Memory / SM (bytes)" : 65536,
        "Max Shared Memory / Block (bytes)" : 49152,
        "Register File Size / SM (32-bit registers)": 65536,
        "Max Registers / Block" : 65536,
        "Register Allocation Unit Size" : 256,
        "Register Allocation Granularity" : "warp",
        "Max Registers / Thread" : 255,
        "Shared Memory Allocation Unit Size": 256,
        "Warp Allocation Granularity": 4,
        "Max Thread Block Size": 1024
    },

    "7.0" : {
        "SM_Version": "sm_70",
        "Thread / Warp" : 32,
        "Warps / SM" : 64,
        "Threads / SM" : 2048,
        "Thread Blocks / SM" : 32, 
        "Shared Memory / SM (bytes)" : 98304,
        "Max Shared Memory / Block (bytes)" : 98304,
        "Register File Size / SM (32-bit registers)": 65536,
        "Max Registers / Block" : 65536,
        "Register Allocation Unit Size" : 256,
        "Register Allocation Granularity" : "warp",
        "Max Registers / Thread" : 255,
        "Shared Memory Allocation Unit Size": 256,
        "Warp Allocation Granularity": 4,
        "Max Thread Block Size": 1024
    },

    "7.5" : {
        "SM_Version": "sm_75",
        "Thread / Warp" : 32,
        "Warps / SM" : 32,
        "Threads / SM" : 1024,
        "Thread Blocks / SM" : 32, 
        "Shared Memory / SM (bytes)" : 65536,
        "Max Shared Memory / Block (bytes)" : 65536,
        "Register File Size / SM (32-bit registers)": 65536,
        "Max Registers / Block" : 65536,
        "Register Allocation Unit Size" : 256,
        "Register Allocation Granularity" : "warp",
        "Max Registers / Thread" : 255,
        "Shared Memory Allocation Unit Size": 256,
        "Warp Allocation Granularity": 4,
        "Max Thread Block Size": 1024
    },
}